scope
The scope of variables can be:
AUTO
AUTOX
STATIC
SHARED
SHARED /groupname/
EXTERNAL
EXTERNAL /groupname/
Scope controls access to variables in the following way:
EXTERNAL variables are accessible to all programs in a single executable, which may be
more than one program if linked together into an executable or library. EXTERNAL
variables are not shared between separate executables, whether programs or libraries.
SHARED variables are accessible to all functions in a program.
STATIC variables are accessible to a single function, but are common to all instances of
the function.
AUTO and AUTOX variables are accessible only by a single instance of a function - they are
newly created each time the function is called.
visible scope
Two scope prefixes are defined so SHARED and EXTERNAL variables can be visibly marked and
not redeclared in every function that accesses them.
Variable names with a # prefix are SHARED , whether or not they appear in a SHARED
variable declaration statement or not.
Variable names with a ## prefix are EXTERNAL , whether or not they appear in an EXTERNAL
variable declaration or not.
Note that variables xx and #xx and ##xx are three independent variables, no matter the
scope and/or data type of xx . # and ## prefixes are considered part of the variable name
or symbol.